Trang tham chiếu cho dev. Mô tả cấu trúc menu chính ("Danh mục" trên thanh đỏ), mega-panel 2 cột (rail danh mục cha bên trái + grid 4 cột danh mục con có icon bên phải), tương tác hover/active, và mapping icon Lucide cho từng nhóm điều trị. Dùng làm cơ sở cập nhật code hiện tại.
route: /
Header 36+80+48 = 164px · Mega panel min-height 540px
280px · padding 10×14 · radius 8#FFEEF1 · indicator 3×16px/700 tên nhóm · 12/400 count13/600 red · arrow-right 14pxdashed #EEEEEE
10/700 + uppercase · bg theo class64px · radius 101px #EEEEEE · hover → red border + liftbug#FFEEF1 · #C8002Bthermometer#FFF3E0 · #C2410Cheart-pulse#FEE2E2 · #B91C1Cflask-conical#FCE7F3 · #9D174Dear#E0F2FE · #0369A1droplet#DBEAFE · #1D4ED8utensils-crossed#FEF3C7 · #92400Ebrain#EDE9FE · #5B21B6hand#FFEDD5 · #9A3412eye#CFFAFE · #0E7490droplets#FEE2E2 · #991B1Bbone#F1F5F9 · #475569pill#FEF9C3 · #854D0Ewind#DCFCE7 · #15803Dbandage#FEF3C7 · #A16207shield-plus#F3E8FF · #6B21A8Mở mega panel khi hover hoặc focus vào item “Danh mục” trên nav đỏ. Trên touch device đầu tiên tap mở, tap thứ hai mới điều hướng.
Đóng khi: pointer rời khỏi cả nav strip lẫn panel (delay ~150ms), nhấn Esc, hoặc click ra ngoài.
↓/↑ di chuyển trong rail trái, → nhảy sang grid phải, ← quay lại rail. Enter điều hướng tới trang category. Tab đi qua các sub-card theo thứ tự đọc.
Focus ring: outline đỏ 2px offset 2px (chuẩn MedBASE).
Hover vào item rail → đổi panel ngay (không cần click). Animation: opacity 0→1 + translate-y 2px→0, 120ms ease-out. Không bounce.
Đổi panel có debounce 60ms để tránh nháy khi pointer quét nhanh qua rail.
Nhóm có gating (ETC, KSĐB) hiển thị pill class · click vào nếu buyer không đủ scope → grayed-out + tooltip cảnh báo, không điều hướng tới catalog.
Áp dụng canBuyerSee(class, scope) từ data-v2.jsx.
Dưới 768px: thay mega panel bằng full-screen drawer. Rail trái và panel phải xếp dọc (rail → list các category accordion). Giữ cùng icon mapping.
Categories cha lấy từ bảng category (9 root). Sub-categories lấy từ therapeutic_group link với ATC cấp 2/3.
Icon & tint lưu trong cột ui_icon/ui_tint để admin có thể đổi qua CMS mà không deploy.